
CC=sparc-elf-gcc.exe
LD=sparc-elf-ld.exe
NM=sparc-elf-nm.exe
OBJDUMP=sparc-elf-objdump.exe
READELF=sparc-elf-readelf.exe
OBJCOPY=sparc-elf-objcopy.exe

CFLAGS=-mv8 -g
LDFLAGS=-nostartfiles -script=link.ld

SRC_DIR=../src
OBJ_DIR=../obj
BSP_DIR=../bsp

FILE=main add
SRC=$(FILE:%=$(SRC_DIR)/%.c)
OBJ=$(FILE:%=$(OBJ_DIR)/%.o)
OBJS=$(OBJ_DIR)/trap.o $(OBJ)

$(OBJ_DIR)/%.o:$(SRC_DIR)/%.c
	$(CC) $(CFLAGS) -c $< -o $@
	
$(OBJ_DIR)/%.o:$(BSP_DIR)/%.S
	$(CC) $(CFLAGS) -c $< -o $@

all:$(OBJS)
	$(LD) $(LDFLAGS) $(OBJS) -o main.elf
	
	$(OBJDUMP) -D main.elf > main_asm.txt
	$(READELF) -a main.elf > main_readelf.txt
	$(NM) --numeric-sort main.elf > main_nm.txt
	$(OBJCOPY) -O binary main.elf main.bin

clean:
	rm -f $(OBJ_DIR)/*.o